package cn.stimd.spring.beans.factory.support;

import cn.stimd.spring.beans.factory.config.BeanDefinition;

/**
 * 窄化接口，处理BeanDefinition有关的操作
 * <p>
 * Created by Stimd
 * 项目地址：https://gitee.com/stimd/spring-wheel
 * 公众号：Java编程探微
 */
public interface BeanDefinitionRegistry {
    /**
     * 将BeanDefinition注册在容器上
     */
    void registerBeanDefinition(String beanName, BeanDefinition beanDefinition);


    /**
     * 移除容器中存在的BeanDefinition
     */
    void removeBeanDefinition(String beanName);


    /**
     * 是否持有BeanDefinition
     */
    boolean containsBeanDefinition(String beanName);

    /**
     * 返回指定名称的BeanDefinition
     */
    BeanDefinition getBeanDefinition(String beanName);

    /**
     * 返回所有BeanDefinition的名称
     */
    String[] getBeanDefinitionNames();
}
